﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Data;
using Portal.Web.Model;
using Portal.Web.Utility;
using Portal.Exam.Bussiness;
using Portal.Core;

namespace Portal.Exam.Render
{
    public class ViewExamTemplate
    {
        public static AjaxOut Draw(string SiteId)
        {
            AjaxOut OAjaxOut = new AjaxOut();
            try
            {
                WebSessionUtility.CheckSessionTimeOut();

                string ExamTemplateId = string.Empty;
                try
                {
                    ExamTemplateId = (string)WebEnvironments.Request(SiteId, "ExamTemplateId");
                }
                catch { }

                if (string.IsNullOrEmpty(ExamTemplateId)) throw new Exception("Tham số không hợp lệ!");

                string Html = string.Empty;
                DataSet dtQuestions = new ExamRoomStudentBll().GetQuestionsByExamTemplateId(SiteId, ExamTemplateId);

                for (int iIndex = 0; iIndex < dtQuestions.Tables.Count; iIndex++)
                {
                    Html += DrawForStudent(SiteId, dtQuestions.Tables[iIndex]).HtmlContent;
                }

                OAjaxOut.HtmlContent = Html;
            }
            catch (Exception ex)
            {
                OAjaxOut.Error = true;
                OAjaxOut.HtmlContent = ex.Message.ToString();
                OAjaxOut.InfoMessage = ex.Message.ToString();
            }
            return OAjaxOut;
        }
        
        public static AjaxOut DrawForStudent(string SiteId, DataTable dtExamQuestion)
        {
            AjaxOut OAjaxOut = new AjaxOut();
            try
            {                                
                string RetHtml =
                    " <div class=header>\r\n" +
                    "     <table>\r\n" +
                    "           <tr>\r\n" +
                    "               <td class=c1>\r\n" +
                    "                   <div>BỘ GIÁO DỤC VÀ ĐÀO TẠO</div>\r\n" +
                    "                   <div>Trường đại học Y Hải Phòng</div>\r\n" +
                    "               </td>\r\n" +
                    "               <td class=cmid>&nbsp;</td>\r\n" +
                    "               <td class=c2>\r\n" +
                    "                   <div>CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM</div>\r\n" +
                    "                   <div>Độc lập - Tự do - Hạnh phúc</div>\r\n" +
                    "                   <div> -----------oOo------------</div>\r\n" +
                    "               </td>\r\n" +
                    "           </tr>\r\n" +
                    "     </table>\r\n" +
                    " </div>\r\n" +
                    " <div class=CssExamInfo>Khóa: ........................./ Lớp: ...............</div>\r\n" +
                    " <div class=CssHeading>Đề thi cho thí sinh - ............./....................................../ Số điểm: ............</div>\r\n" +
                    " <div class=CssExamInfo>Môn thi: ..................................../ Thời gian: ..............</div>\r\n" +
                    " <div class=CssExamInfo>Ngày thi: .........................\r\n" +
                    " <div class=CssMarkInfo>\r\n" +
                    "       <table>\r\n" +
                    "           <tr>\r\n" +
                    "               <td class=c1>Điểm thi của bài thi</td>\r\n" +
                    "               <td class=c2>Họ tên và chữ ký</td>\r\n" +
                    "               <td class=c3>Số phách<div>(Do chủ tịch HĐ chấm ghi chú)</div></td>\r\n" +
                    "           </tr>\r\n" +
                    "           <tr>\r\n" +
                    "               <td class=c1><table class=tdInner><tr><td>Bằng số</td><td>Bằng chữ</td></tr></table></td>\r\n" +
                    "               <td class=c2><div class=CssAlignLeft>Giám khảo 1</div><div class=CssAlignLeft>.........................................................................</div><div class=CssAlignLeft>Giám khảo 2</div><div class=CssAlignLeft>.........................................................................</div></td>\r\n" +
                    "               <td class=c3></td>\r\n" +
                    "           </tr>\r\n" +
                    "       </table>\r\n" +
                    " </div>\r\n" +
                    " <div class=CssStartExam>Hoàn thành " + dtExamQuestion.Rows.Count.ToString("#,##") + " câu hỏi dưới đây</div>\r\n" +
                    " <div class=CssExamContent>\r\n" +
                    " <ul>\r\n";

                for (int iIndex = 0; iIndex < dtExamQuestion.Rows.Count; iIndex++)
                {                    
                    RetHtml += "  <li>" + DrawOneQuestion(SiteId, dtExamQuestion, iIndex).HtmlContent + "</li>\r\n";
                }
                RetHtml += "</ul>\r\n" +
                         "</div>\r\n" +
                         "<div class=break></div>\r\n";
                OAjaxOut.HtmlContent = RetHtml;
            }
            catch (Exception ex)
            {
                OAjaxOut.Error = true;
                OAjaxOut.HtmlContent = ex.Message.ToString();
                OAjaxOut.InfoMessage = ex.Message.ToString();
            }
            return OAjaxOut;
        }


        public static AjaxOut DrawOneQuestion(
            string SiteId,
            DataTable dtExamQuestion,
            int QuestionIndex)
        {
            AjaxOut OAjaxOut = new AjaxOut();
            try
            {
                string Html = "";
                string Title = (string)dtExamQuestion.Rows[QuestionIndex]["Title"];
                string Question = (string)dtExamQuestion.Rows[QuestionIndex]["Question"];
                string Type = (string)dtExamQuestion.Rows[QuestionIndex]["Type"];                

                if (string.IsNullOrEmpty(Question))
                {
                    Html += "<div class=CssQuestionTitle>Câu " + (QuestionIndex + 1) + ": " + Title + "</div>\r\n";
                }
                else
                {
                    Html += "<div class=CssQuestionTitle>Câu " + (QuestionIndex + 1) + ": " + Question + "</div>\r\n";
                }
                
                if (Type.ToLower().Equals("freetext"))
                {
                    Html += "<div class=CssQuestionType>Sinh viên viết bài tự luận dưới đây</div>\r\n" +
                            "<div class=CssListAnswer>\r\n";

                    for (int iIndex = 0; iIndex < 20; iIndex++)
                    {
                        Html += "....................................................................................................................................................\r\n";
                    }

                    Html += "</div>\r\n";
                }
                OAjaxOut.HtmlContent = Html;
            }
            catch (Exception ex)
            {
                OAjaxOut.Error = true;
                OAjaxOut.InfoMessage = ex.Message.ToString();
            }
            return OAjaxOut;
        }

        [AjaxPro.AjaxMethod]
        public string GetProcessingText()
        {
            
            return "Đang đọc dữ liệu từ máy chủ";
        }

    }
}
